﻿using MJD.Comunes.DtoEntidades;
using Recursos;

namespace Comunes.DataSet
{
    /// <summary>
    /// Clase que transforma los datos de un objeto de tipo sucursal en un objeto para mostrar en pantalla
    /// </summary>
    public class DataSetSucursal
    {
        #region Atributos

        private string _direccion;
        private string _numeroPrincipal;
        private string _numeroSecundario;
        private string _tipo;
        private DtoSucursal _sucursal;

        #endregion

        #region Constructor

        /// <summary> Constructor de la clase </summary>
        /// <param name="sucursal">datos de la sucursal a transformar</param>
        public DataSetSucursal(DtoSucursal sucursal)
        {
            _sucursal = sucursal;
            _direccion = LlevarAStringDireccionSucursal();
            _numeroPrincipal = sucursal.Telefono1;
            _numeroSecundario = sucursal.Telefono2;
            _tipo = sucursal.Tipo;

        }

        #endregion

        #region Propiedades

        /// <summary>
        /// Extrae la informacion de un objeto DtoDireccion y la muestra en un string con formato
        /// </summary>
        private string LlevarAStringDireccionSucursal()
        {
            string strdireccion = string.Empty;

            if (!string.IsNullOrEmpty(_sucursal.Calle))
                strdireccion += Strings.TextoCalleAvenida + _sucursal.Calle;

            if (!string.IsNullOrEmpty(_sucursal.Edificio))
                strdireccion += Strings.TextoEdifCasa + _sucursal.Edificio;

            if (!string.IsNullOrEmpty(_sucursal.Piso))
                strdireccion += Strings.TextoPiso + _sucursal.Piso;

            if (!string.IsNullOrEmpty(_sucursal.Apartamento))
                strdireccion += Strings.TextoApto + _sucursal.Apartamento;

            if (!string.IsNullOrEmpty(_sucursal.Urbanizacion))
                strdireccion += Strings.TextoUrbanizacion + _sucursal.Urbanizacion;

            if (_sucursal.Ciudad != null && !string.IsNullOrEmpty(_sucursal.Ciudad.Nombre))
                strdireccion += ", " + _sucursal.Ciudad.Nombre;

            if (_sucursal.Ciudad.Estado != null && !string.IsNullOrEmpty(_sucursal.Ciudad.Estado.Nombre))
                strdireccion += " - " + _sucursal.Ciudad.Estado.Nombre;

            return strdireccion;
        }


        public string Direccion
        {
            get { return _direccion; }
            set { _direccion = value; }
        }


        public string NumeroPrincipal
        {
            get { return _numeroPrincipal; }
            set { _numeroPrincipal = value; }
        }


        public string NumeroSecundario
        {
            get { return _numeroSecundario; }
            set { _numeroSecundario = value; }
        }


        public string Tipo
        {
            get { return _tipo; }
            set { _tipo = value; }
        }


        public DtoSucursal Objeto
        {
            get { return _sucursal; }
            set { _sucursal = value; }
        }
        #endregion
    }
}
